This invention relates to data communication, and more particularly to circuitry for receiving data signals that have been communicated from a data signal source.
Data is frequently transmitted serially. Typically the data represents bytes of information that are being transmitted one after another. The usual definition of a byte is eight bits, but as used herein “byte” can refer to any plural number of bits such as eight bits, nine bits, ten bits, 11 bits, or fewer or more than these numbers of bits. When the data is received, one task that the receiving circuitry must typically perform is to find the boundaries between the successive bytes in the received serial bit stream. This may be referred to as “byte alignment” or “byte synchronization”.
To facilitate byte alignment, it is typical to transmit special bytes at the start of a packet of bytes of data. The special bytes are sometimes referred to herein as a comma or header information. The receiver circuitry looks for the special byte pattern in the incoming data by comparing the received data to a special character, which can be, for example, stored within the receiver circuitry. When the received data matches the special character, the receiver circuitry knows where the boundaries between subsequent bytes are. This makes it possible for the receiver circuitry to properly handle the subsequent bytes of data.
Several problems can occur once byte boundaries are properly aligned. One problem is that false alignment of byte boundaries can occur when data having the same bytes as the special character is detected by the receiver circuitry, even though this data is not intended to be a special byte. The receiver circuitry may realign the byte boundaries when the “special byte data” is detected. This realignment is undesirable because the newly aligned byte boundaries may not correspond to the correct byte boundaries.
Another problem is that the special character is of fixed length (e.g., 16 bits). Such a special character may only be suitable for certain implementations. For example, a receiver may be coupled to a programmable logic device that requires a different length special character (e.g., 32 bits). Moreover, if the special character is fixed to a particular length, it is possible that received data can mimic the special character and cause improper alignment.
Further still, another problem can be caused by latency in signal propagation. Particularly, when a special character is detected, it may take too long for a (special character detect) signal to propagate to utilization circuitry (e.g., control circuitry), which then provides a signal to instruct the receiver circuitry to cease aligning byte boundaries. This is problematic because during the time it takes for receiver circuitry to cease alignment, an erroneous subsequent special character may be detected, and the byte boundaries may be aligned to the subsequent special character instead of the byte boundaries of the first special character. Had it not been for the latency, the byte boundaries of the first special character would have been used instead of the potentially erroneous byte boundaries accompanying the subsequent special character.